3 ...\PTVR_Researchers\Python_Scripts\DEMOS\Screens\
4 2.3_place_objects_on_tangent_screen.py
8 Animation demo to show:
10 How to place objects on a TANGENT screen with ...
11 - either a 2D spherical coordinate system ( here a perimetric system) : ...
12 set_perimetric_coordinates_on_screen (.
13 - or a 2D cartesian coordinate system (in meter units) : ...
14 set_cartesian_coordinates_on_screen ()
16 Note: the origin of the Coordinate System (CS) is at the center of the black point
33 PWD = PTVR.SystemUtils.PWD
38 tangent_screen_radial_distance_m = 1
39 tangent_screen_eccentricity = 60
40 tangent_screen_halfmeridian = 180
42 height_of_headset = 1.2
43 if username ==
"Eric":
44 height_of_headset = 1.2
46 head_viewpoint_position = np.array([0, height_of_headset, viewpoint_Z])
50 for i
in np.arange(0, 0.6, 0.1):
52 size_in_meters=0.05, color=color.RGBColor(r=0.5, b=0.9))
54 my_object.set_cartesian_coordinates_on_screen(my_2D_screen=my_screen,
56 my_scene.place(my_object, my_world)
61 for HM_j
in range(0, 360, 45):
63 size_in_meters=0.1, color=color.RGBColor(r=1))
65 my_object.set_perimetric_coordinates_on_screen(
66 tangentscreen = my_tangent_screen,
67 eccentricity_local_deg = my_ecc,
68 half_meridian_local_deg = HM_j)
70 my_scene.place(my_object, my_world)
75 my_world = visual.The3DWorld(name_of_subject=username)
78 my_world.translate_coordinate_system_along_global(head_viewpoint_position)
84 size_in_meters=np.array([0.1, 0.1, 0.1]))
90 color=color.RGBColor(r=1, g=1, b=1))
91 my_tangent_screen_white.set_cartesian_coordinates(x=0.0, y=0,
92 z=tangent_screen_radial_distance_m)
96 color=color.RGBColor(r=1, g=1))
97 my_tangent_screen_yellow.set_perimetric_coordinates(
98 eccentricity=tangent_screen_eccentricity,
99 halfMeridian=tangent_screen_halfmeridian,
100 radialDistance=tangent_screen_radial_distance_m)
102 color=color.RGBColor(r=1, g=0.5))
103 my_tangent_screen_orange.set_perimetric_coordinates(
104 eccentricity=tangent_screen_eccentricity,
105 halfMeridian=180 + tangent_screen_halfmeridian,
106 radialDistance=tangent_screen_radial_distance_m)
110 color=color.RGBColor(g=1))
111 my_tangent_screen_green.set_cartesian_coordinates(x=0, y=- tangent_screen_radial_distance_m,
112 z=tangent_screen_radial_distance_m)
115 color=color.RGBColor(b=1))
116 my_tangent_screen_blue.set_cartesian_coordinates(x=0, y=tangent_screen_radial_distance_m,
117 z=tangent_screen_radial_distance_m)
119 my_scene.place(my_viewpoint, my_world)
121 my_scene.place(my_tangent_screen_white, my_world)
122 my_scene.place(my_tangent_screen_yellow, my_world)
123 my_scene.place(my_tangent_screen_orange, my_world)
124 my_scene.place(my_tangent_screen_green, my_world)
125 my_scene.place(my_tangent_screen_blue, my_world)
129 my_screen=my_tangent_screen_white)
131 my_screen=my_tangent_screen_yellow)
133 my_screen=my_tangent_screen_orange)
135 my_screen=my_tangent_screen_green)
137 my_screen=my_tangent_screen_blue)
141 my_tangent_screen=my_tangent_screen_white, my_ecc=9.0)
143 my_tangent_screen=my_tangent_screen_yellow, my_ecc=9.0)
145 my_tangent_screen=my_tangent_screen_orange, my_ecc=9.0)
147 my_tangent_screen=my_tangent_screen_green, my_ecc=9.0)
149 my_tangent_screen=my_tangent_screen_blue, my_ecc=9.0)
151 my_world.add_scene(my_scene)
155 if __name__ ==
"__main__":
def place_objects_w_perimetric_CS(my_world, my_scene, my_tangent_screen, my_ecc)
def place_objects_w_cartesian_CS(my_world, my_scene, my_screen)
def LaunchThe3DWorld(jsonFileCategory="Externals")